package main

import (
	"fmt"
	"time"

	"github.com/gin-gonic/gin"
)

func IndexHandle(ctx *gin.Context) {
	ctx.String(200, "这是首页")
}
func LoginHandle(ctx *gin.Context) {
	ctx.String(200, "登录成功")
}

// 中间件函数
func LoginMiddleware(ctx *gin.Context) {
	fmt.Println("进行登录的验证")
	// 获取表单数据中用户名和密码
	user := ctx.PostForm("username")
	pwd := ctx.PostForm("password")
	if user != "admin" || pwd != "123456" {
		ctx.String(200, "登录失败")
		// 阻止往后执行
		ctx.Abort()
		return
	} else {
		ctx.Next()
	}
}
func main() {
	// 1.创建路由引擎
	r := gin.Default()
	// 全局中间件
	r.Use(func(ctx *gin.Context) {
		fmt.Println("通过中间件收到了一个请求：", time.Now())
		// 往后执行（下一个中间件、路由函数）
		ctx.Next()
	})
	// 局部中间件，针对于特定的路由
	// "/login", LoginMiddleware

	// 2.注册路由
	r.GET("/index", IndexHandle)
	r.POST("/login", LoginMiddleware, LoginHandle)
	// 3.启动服务
	fmt.Println("服务器启动成功...")
	r.Run(":8080")
}
